package org.dromara.business.service;


import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.business.domain.AppUser;
import org.dromara.business.domain.bo.AppUserBo;
import org.dromara.business.domain.vo.AppUserVo;
import org.dromara.business.request.BindParentUserRequest;
import org.dromara.business.request.BindUserRequest;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;

import java.util.List;

public interface AppUserService {
    Boolean bindUser(BindUserRequest bindUserRequest);

    Boolean checkWalletAddress(String address);

    AppUser getAppUserByAddress(String address);

    /**
     * 绑定上级钱包地址
     * @param request
     */
    void bindParentUser(BindParentUserRequest request);

    /**
     * 查询钱包用户
     *
     * @param id 主键
     * @return 钱包用户
     */
    AppUserVo queryById(Long id);

    /**
     * 分页查询钱包用户列表
     *
     * @param bo        查询条件
     * @param pageQuery 分页参数
     * @return 钱包用户分页列表
     */
    TableDataInfo<AppUserVo> queryPageList(AppUserBo bo, PageQuery pageQuery);

    /**
     * 查询符合条件的钱包用户列表
     *
     * @param bo 查询条件
     * @return 钱包用户列表
     */
    List<AppUserVo> queryList(AppUserBo bo);

    AppUser getById(Long userId);
}
